package com.wing.productionPlan.model.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import com.wing.productionPlan.model.entity.ProductionPlan;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 生产计划Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class ProductionPlanForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 计划编号
     */
    private String code;

    /**
     * 产品类型id
     */
    private Long productTypeId;

    /**
     * 产品类型名称
     */
    private String productTypeName;

    /**
     * 客户SKU料号
     */
    private String customerSkuCode;

    /**
     * 性质名
     */
    private String productNatureName;

    /**
     * 客户SKU规格码
     */
    private String customerSkuSpec;

    /**
     * 附件
     */
    private String accessory;

    /**
     * 单位id
     */
    private Long unitId;

    /**
     * 单位名称
     */
    private String unitName;
    /**
     * 备注
     */
    private String remark;

    /**
     * 计划订单类型
     */
    private ProductionPlan.OrderType orderType;
    /**
     * 审核状态
     */
    private ProductionPlan.CheckStatus checkStatus;

    /**
     * 生产数量
     */
    private Integer productionQuantity;

    /**
    * 出货时间
    */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime shipmentTime;

    /**
     * 状态
     */
    private ProductionPlan.Status status;
    /**
     * 客户sku名称
     */
    private String customerSkuName;

    public interface Add{}

    public interface Update{}

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 计划来源
     */
    private ProductionPlan.PlanSource planSource;

    /**
     * 计划分类id
     */
    private Long planClassifyId;

    /**
     * 是否签约
     */
    private ProductionPlan.SignOrNot signOrNot;

    /**
     * 合同id
     */
    private Long contractId;

    /**
     * 计划类型id
     */
    private Long planTypeId;

    /**
     * 计划性质
     */
    private ProductionPlan.PlanNature planNature;

    /**
     * 工序id
     */
    private Long processId;

    /**
     * 需求数量
     */
    private Integer demandQuantity;

    /**
     * 计划产出时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime outputTime;
    /**
     * 审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;
    /**
     * 审核描述
     */
    private String auditRemark;
    /**
     * 审核人
     */
    private String auditPerson;
    /**
     * 包装方案
     */
    private String packName;
    /**
     * 创建人电话
     */
    private String phone;
    /**
     * 订单产品id
     */
    private Long orderProId;

    /**
     * 基准书id
     */
    private Long bookId;

    /**
     * 物料id
     */
    private Long productDetailId;

    /**
     * 车间id
     */
    private Long workshopId;
}
